Source code generation for scientific data collections
-
Kharitonov D.I.
D.I. Kharitonov. IACP FEBRAS. Vladivostok. Russia
-
Odyakova D.S.
D.S. Odyakova . IACP FEBRAS. Vladivostok. Russia
-
Leontiev D.V.
D.V. Leontiev. IACP FEBRAS. Vladivostok. Russia .
-
Parahin R.V.
R.V. Parakhin IACP FEBRAS Vladivostok. Russia
The article discusses an approach to building electronic collections of scientific data, based on the automatic source code generation for information system components based on the ER-model of subject area prepared by the information system designer. The approach relies on the architectural generation scheme, containing: a modeling apparatus consisting of a metalanguage template graph and prototypes of description elements in the metalanguage; a domain model consisting of an ER-model in graphic form and its object representation; life cycle consisting of a model in terms of Petri nets and its object representation. The article describes the life
cycle of the electronic collection and the interaction of the information system components corresponding to this life cycle, defines the metalanguage in the graph form in which the spanning tree is defined with the role, value and priority assigned for each node of the tree. To describe the domain model objects and their interaction, a source code template language was developed and described in terms of BNF grammar. The process of source code generation for the target programming language is considered on the example of a foraminifera collection. Examples of generated SQL files fragments for some life cycle events are given. The approach to
automation of building information systems described in the article allows us to formalize the user’s view of the subject area, to describe the interface and to specify data processing methods. Dividing the generation process into two stages increases the program code reusability, and the intermediate internal representation allows us to evaluate and analyze the resulting code for correctness.
Keywords: scientific data collections, Petri nets, BNF grammar, automatic source code generation, ER-modeling.